Wiki
Clone wikidarudar-backend / Ресурсы дара
[TOC] #Формат дара ##В списке
#!json { "pk_gift": 4912137, "count_likes": 0, "is_cross": 0, "cross_count": 0, "privacy": 0, "status": 0, "dtime": 1477737165, "dtime_update": 1477737165, "name": "Видео кассета Армагеддон", "preview": { <-- Превью дара "uri": "http://img68.static.darudar.org/s300/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg", "url_sq": "http://img68.static.darudar.org/c50/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg" }, "author": {...}, <-- автор (см. формат пользователя в списке) "adult": null, "relations:me": { "like": null } }
#!json { "pk_gift": 2032143, <-- Уникальный ID дара "is_publicated": 1, <-- Флаг опубликованности "is_trash": 0, <-- Флаг трешанутости "count_likes": 0, <-- Кол-во лайков "count_views": 0, <-- Кол-во просмотров дара "cross_count": 0, <-- Очерёдность передара "is_republicated": 0, <-- Флаг переопубликованности "comments_count": 13, <-- Кол-во публичных комментариев к дару "wishers_count": 0, <-- Кол-во желающих дар "thanks_count": 0, <-- Кол-во благодарностей к дару "privacy": 0, <-- Приватность (см. ниже) "status": 0, <-- Статус дара (см. ниже) "type": 0, <-- "applicability": 0, <-- Дар для одного или для многих (см. ниже) "transfer": 1, <-- Cпособ передачи (DEPRECATED!) "dtime": 1478177209, <-- timestamp времени публикации дара "dtime_update": 1480095729, <-- timestamp последнего изменения публикации "dtime_expiry": 1485896400, <-- timestamp времени истечения дара "name": "tst", <-- Заголовок дара "preview": { <-- Превью дара "uri": "http://img68.static.darudar.org/s300/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg", "url_sq": "http://img68.static.darudar.org/c50/02/01/dev/14/cc/14ccd9588fd5f42ba3f7a095babcc775e7d81b96.jpg" }, "video": [], "tags": "фыв", "description": "фывф", "author": {...}, <-- автор (см. формат пользователя в списке) "media": { <-- медиа-файлы дара "images": [ {...}, <-- Изображеняия дара (см. файлы) {...}, {...} ] }, "transfers": [ {...}, <-- Способ передачи дара (см. способы передачи) {...}, {...} ], "adult": null, <-- Флаг 18+ "relations:me": { <-- Персональные отношения текущего пользователя с даром "comments_new": { <-- кол-во новых публичных комментариев с момента последнего просмотра комментариев к дару "dtime": 1507393682, "count_new": 2 }, "like": { <-- лайкал ли "dtime": 1485265899 <-- время лайка }, "wish": { <-- Отношение между даром и текущим пользователем "dtime_added": 1485243649, <-- время добавления записи "dtime_updated": 1485243649, <-- время изменения записи "attitude": 1, <-- статус пользователя в даре (см. ниже) "show_contacts": 0, <-- показываются ли контакты текущего пользователя в даре "wishers_last_count": 1, <-- кол-во желающих "inbox_comments_new_count": 0, <-- кол-во новых комментариев в даре "inbox_dtime_commented": 0, <-- время последнего комментария во встречах "inbox_dtime_visited": 0, <-- время последнего посещения сообщений встреч "inbox_comments_count": 0, <-- общее кол-во комментариев в сообщениях встреч "count_wishers_new": 1 <-- кол-во новых желающих с момента последнего посещения списка желающих } } }
Поле privacy
может принимать следующие значения:
- 0 - дар для всех,
- 1 - только заинтересованным,
Поле status
может принимать следующие значения:
- 0 - дарится,
- 1 - обещано,
- 2 - подарено,
Поле applicability
может принимать следующие значения:
- 0 - дар для одного,
- 1 - дар для многих,
Поле attitude
может принимать следующие значения:
- 1 - автор дара,
- 2 - пожелал дар,
- 3 - дар обещан,
- 4 - дар подарен,
- 5 - отказался от дара,
Поля media.images
представляют из себя массив объектов файлов
Поле transfers
представляет из себя массив объектов способов передачи
#Формат отношения дар-пользователь (желающий, даритель etc) Данный объект является "желанием".
##В списке
#!json { "pk_gtu": 243649, <-- уникальный ID "dtime_added": 1485243649, <-- время добавления записи "dtime_updated": 1485243649, <-- время изменения записи "attitude": 1, <-- статус пользователя в даре (см. ниже) "comments_count": 3, <-- Кол-во комментариев к желанию "user": {...}, <-- Пользователь (см. вывод пользователя в списке) "gift": {...}, <-- Дар (см. вывод дара в списке) "wish": { "dtime_updated": 1487417158, <-- Время добавления пожелания "comment": "Очень хочухочочу!!!" <-- Комментарий пожелания }, "relations:me": { <-- Отношение текущего пользователя "comments_new": { <-- Cчётчик комментариев с момента последнего "просмотра" "dtime": 1507472551, "count_new": 0 } }, }
#Ресурсы дара
Добавление дара
URI: POST ~/gift
Создание дара.
Параметр | Тип | Значение |
---|---|---|
name | string | Название дара. Обязательное поле. |
images | array | Список файлов-изображений |
description | text | Описание дара |
tags | string | Ключевые слова. Разделитель запятая "," |
applicability* | int | Для скольких человек предназначен |
transfers | array | Способы передачи дара |
privacy* | int | Приватность дара |
adult | boolean | Флаг для даров 18+ |
publish* | int | Тип публикации |
Поле applicability
может принимать следующие значения:
- 0 - дар для одного,
- 1 - дар для многих,
Поле privacy
может принимать следующие значения:
- 0 - дар для всех,
- 1 - только заинтересованным,
Поле publish
может принимать следующие значения:
- 0 - в черновик,
- 1 - публичный доступ,
Поле transfers
формируется из массива полей обозначенных в способах передачи за исключением поля key
(!).
Пример запроса:
POST /gift HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> { "name":"Бритвенный станок", "images": [688, 689], "description":"Хороша и неказиста жизнь простого тракториста!", "tags":"один, второй", "transfers": [ { "type": "meeting_p", "city": 447755, "address": "Лопытанский пер, 5", "comment": "sitting reading" } ], "privacy":1, "adult":false, "applicability":0, "publish":0 }
Пример ответа:
#!json { "saved": "ok", "gift": { "pk_gift": 2032148 <-- Идентификатор дара } }
Редактирование дара
URI: PUT ~/gift/<giftId>
Редактирование дара с указателем <giftId>
. Параметры и ответы все те же, что и в методе создания (см. выше).
Удаление дара
URI: DELETE ~/gift/<giftId>
Удаление дара с указателем <giftId>
.
Пример запроса:
DELETE /gift/2032149 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "deleted": "ok", "gift": { "pk_gift": 2032149 <-- ID удалённого дара } }
Дар
URI: GET ~/gift/<giftId>
Получает данные о даре с указанным уникальным идентификатором дара <giftId>
Пример запроса:
GET /gift/2032143 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json accept: application/json authorization: <токен>
В ответе в свойстве gift
приходит JSON-объект дара.
Пример ответа:
#!json { "gift": {...} <-- Дар в полном формате (см. в начало документа) }
Лайк дара
URI: POST|DELETE ~/gift/<giftId>/like
Отметить дар с указателем <giftId> флагом "нравится" (или удалить эту отметку).
Пример запроса:
POST /gift/2032143/like HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "like": { "pk_gift": 2032143 }, "count_likes": 2 <-- Суммарное кол-во лайков дара }
Список благодарностей к дару
URI: GET ~/gift/<giftId>/thanks
Список благодарностей к дару <giftId>
.
Пример запроса:
GET /gift/2032020/thanks HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе будет список благодарностей к указанному дару. Доступна пагинация.
Пример ответа:
#!json { "thanks": [ {...}, <-- Благодарность (см. вывод благодарнсоти в списке) {...}, {...} ], "paginator": {...} <-- см. постраничную навигацию }
Похожие дары
URI: GET ~/gift/<giftId>/similar
Получает дары "похожие" на дар с указателем <giftId>
.
Параметр | Тип | Значение |
---|---|---|
status(опциональный) | int | Статус похожих даров: |
Параметр status может принимать следующие значения: |
- 0 - дарится,
- 1 - обещано,
- 2 - подарено.
Пример запроса:
#! GET /gift/5001520/similar? HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
#!json { "gifts": [ {...}, <-- дар (см. формат дара в списке) {...}, <-- дар (см. формат дара в списке) {...} ], "paginator": { "page": 1, "perPage": 10, "from": 0, "step": 10, "countItems": 100, "countPages": 10 } }
Комментарии к дару
URI: GET ~/gift/<giftId>/comments
Получает древовидные комментарии к дару с идентификатором дара <giftId>
. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев
Пример запроса:
GET /gift/4670618/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе в свойстве comments
приходит список комментариев.
Пример ответа:
#!json { "comments": [ {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше) {...}, {...} ] }
Комментарии к дару (добавление)
URI: POST ~/gift/<giftId>/comments
Добавление публичного комментария к дару с идентификатором дара <giftId>
.
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
parent | int | Идентификатор родительского комментария |
Поле comment
является обязательным!
Пример запроса:
POST /gift/4670618/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий (см. формат вывода в списке) }
Комментарии к дару (редактирование)
URI: PUT ~/gift/<giftId>/comments
Редактирование публичного комментария к дару с идентификатором <giftId>
. Редактирование доступно в течение 10 минут с момента создания комментария!
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
Пример запроса:
PUT /gift/4670618/comments/28095164 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий }
Список желающих дар
URI: GET ~/gift/<giftId>/wishers
Список желающих дар с идентификатором <giftId>
Пример запроса:
GET /gift/2032186/wishers HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "wishers": [ {...}, <-- Отношение пользователь-дар в списке {...}, {...} ] }
Пожелать/отказаться от дара
URI: POST|PUT|DELETE ~/gift/<giftId>/wishers
Пожелать или отказаться от дара с идентификатором <giftId>
.
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст пожелания дара |
Данный параметр доступен только для методов POST
(добавление нового желающего) и PUT
(редактирование пожелания).
Пример запроса:
POST /gift/2032186/wishers HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json {"comment": "Здравствуйте! Пригодилось бы на даче"}
Пример ответа:
#!json { "wisher": {...} < Отношение пользователь-дар в списке }
Комментарии к желанию в даре
URI: GET ~/gift/<giftId>/wishers/<wishId>/comments
Получает древовидные комментарии к дару с идентификатором дара <giftId>
для желания <wishId>
. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев
Пример запроса:
GET /gift/2032368/wishers/12204943/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе в свойстве comments
приходит список комментариев.
Пример ответа:
#!json { "comments": [ {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше) {...}, {...} ] }
Комментарии к желанию дара (добавление)
URI: POST ~/gift/<giftId>/wishers/<wishId>/comments
Добавление публичного комментария к дару с идентификатором дара <giftId>
для желания <wishId>
.
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
parent | int | Идентификатор родительского комментария |
Поле comment
является обязательным!
Пример запроса:
POST /gift/2032368/wishers/12204943/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий (см. формат вывода в списке) }
Комментарии к желанию дара (редактирование)
URI: PUT ~/gift/<giftId>/wishers/<wishId>/comments/<commentId>
Редактирование публичного комментария <commentId>
к дару с идентификатором <giftId>
для желания <wishId>
. Редактирование доступно в течение 10 минут с момента создания комментария!
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
Пример запроса:
PUT /gift/2032368/wishers/12204943/comments/28095370 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий }
Пообещать/разобещать дар
URI: POST|DELETE ~/gift/<giftId>/promise/<login>
Пообещать (или разобещать) дар с указателем <giftId>
указанному желающему <login>
.
Пример запроса:
POST /gift/2032186/promise/brutto HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "promise": { "pk_gift": 2032186, "pk_user": 171452 } }
Сменить статус дара
URI: PUT ~/gift/<giftId>/status
Ручная смена статуса дара с идентификатором <giftId>
. Статус дара не может быть изменён, если дар никому не обещан!
Параметр | Тип | Значение |
---|---|---|
status | int | Новый статус дара |
Поле status
может принимать следующие значения:
- 0 - дарится,
- 1 - обещано,
- 2 - подарено,
Пример запроса:
PUT /gift/2032186/status HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json {"status": 2}
Пример ответа:
#!json { "changed": "ok", "status": { "pk_gift": 2032186, "value": 2 } }
###Сообщения встреч
URI: ~/gift/<giftId>/meeting/comments
Получает древовидные комментарии сообщений встреч к дару с идентификатором дара <giftId>
. Комментарии уже отсортированы по дате и по вложенности. Формат вывода комментариев.
Пример запроса:
GET /gift/4670618/meeting/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе в свойстве comments
приходит список комментариев.
Пример ответа:
#!json { "comments": [ {...}, <-- комментарий (см. ссылку на вывод комментария в списке выше) {...}, {...} ] }
Сообщения встреч (добавление)
URI: POST ~/gift/<giftId>/meeting/comments
Добавление публичного комментария к дару с идентификатором дара <giftId>
.
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
parent | int | Идентификатор родительского комментария |
Поле comment
является обязательным!
Пример запроса:
POST /gift/4670618/meeting/comments/ HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий (см. формат вывода в списке) }
Сообщения встреч (редактирование)
URI: PUT ~/gift/<giftId>/meeting/comments/<commentId>
Редактирование публичного комментария к дару с идентификатором <giftId>
. Редактирование доступно в течение 10 минут с момента создания комментария!
Параметр | Тип | Значение |
---|---|---|
comment | text | Текст комменатрия |
Пример запроса:
PUT /gift/4670618/meeting/comments/28095 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "saved": "ok", "comment": {...} <-- Комментарий }
Очистить сообщения встреч
URI: DELETE ~/gift/<giftId>/meeting/comments
Удаление всех комментариев в разделе "сообщения встреч" к дару с идентификатором <giftId>
. Эта функция доступна только дарителю!
Пример запроса:
DELETE /gift/4670618/meeting/comments HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "deleted": "ok", }
###Список встреч
URI: GET ~/gift/<giftId>/meeting
Список встреч с теми кому обещано (если текущий пользователь автор дара) или с автором (если ты одариваемый в этом даре).
Пример запроса:
GET /gift/4670618/meeting HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "meetings": [ {...} <-- Встреча (см.) ] }
###Видимость контактов во встрече (переключатель)
URI: PUT ~/gift/<giftId>/meeting/contacts/switch
Переключает видимость контактов текущего пользователя для остальных участников встречи в даре с идентификатором <giftId>
.
Пример запроса:
PUT /gift/2032131/meeting/contacts/switch HTTP/1.1 HOST: api.brutto.dev.darudar.com authorization: <token> accept: application/json
Пример ответа:
#!json { "show_contacts": true }
Пожаловаться (недар)
URI: POST|DELETE ~/gift/<giftId>/trash
Пожаловаться на дар с идентификатором <giftId>
Параметр | Тип | Значение |
---|---|---|
reason | int | Причина из списка |
Поле reason
может принимать следующие значения:
- 1 Попытка обмена или продажи
- 2 Нарушается процедура дарения
- 3 Раскрываются контактные данные
- 5 Может быть выложено в интернете для всех
- 6 Нарушаются авторские права
- 7 Скорее реклама, чем дар
- 8 Просьба о помощи или о знакомстве
- 9 Лучше выбросить, чем дарить
- 11 Негигиенично или опасно для здоровья
- 12 Нарушаются нормы этики и морали
- 13 Сомнения в достоверности и правдивости информации
- 14 Плохое оформление или группировка
Метод DELETE
доступен только пользователям с административным доступом! Он полностью снимает все жалобы с указанного дара.
Пример запроса:
POST /gift/2032187/trash HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/x-www-form-urlencoded authorization: <token> accept: application/json {"reason": 12}
Пример ответа:
#!json { "trashed": "ok" }
Группы дара
URI: GET ~/gift/<giftId>/groups
Выводит список групп, в которые входит дар <giftId>
Пример запроса:
GET /gift/2032187/groups HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/x-www-form-urlencoded authorization: <token> accept: application/json {"groups": [1234,12345]}
Пример ответа:
#!json { "groups": [ {...}, <-- Группа (см. вывод группы на списке) {...} ] }
Добавление дара в несколько групп
URI: POST ~/gift/<giftId>/groups
Параметр | Тип | Значение |
---|---|---|
groups | array | Массив идентификаторов групп |
Пример запроса:
POST /gift/2032187/groups HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/x-www-form-urlencoded authorization: <token> accept: application/json
Пример ответа:
#!json { "added":"ok" }
Updated